搭建环境:
两台strongswang 运行在Azure云上一个虚拟网络的虚机里,有内部IP和公网IP
strongswan服务器vpn1
网络空间 10.250.250.0/24
内部IP地址 10.250.250.69
外部公网IP地址 139.219.133.12
共享密匙 /etc/strongswan/ipsec.secrets
strongswan 服务器vpn2
网络空间 10.10.50.0/24
内部IP地址 10.10.50.4
外部公网IP地址 42.159.93.91
共享密匙 /etc/strongswan/ipsec.secrets
架构图
子网[10.250.250.0/24]---->[可配对内网卡]vpn1[10.250.250.69]--|防火墙|--[139.219.133.12]--->internet---[42.159.93.91]--|防火墙|-->[10.10.50.4]vpn2[可配对内网卡]---->子网[10.10.50.0/24]
环境变量
1 | cat >> /etc/sysctl.conf << EOF |
防火墙配置
## 两台vpn服务器上设置
firewall-cmd --permanent --add-service=ipsec
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload
共享密匙
## 两台vpn服务器上设置
1 | cat > /etc/strongswan/ipsec.secrets << EOF |
strongswan 服务器1 配置
1 | cat > /etc/strongswan/ipsec.conf << EOF |
strongswan 服务器2 配置
1 | cat > /etc/strongswan/ipsec.conf << EOF |
vpn 服务器上系统路由添加
## vpn 1:
ip route add 10.10.50.0/26 dev <连接对端vpn的网卡设备名>
## vpn 2:
ip route add 10.250.250.0/26 dev <连接对端vpn的网卡设备名>
子网客户端系统路由添加
## vpn 1 所在子网的客户端添加路由, 10.250.250.69是vpn服务的连接内网的ip地址(如果双网卡)
ip route add 10.10.50.0/26 via 10.250.250.69
## vpn 2 所在子网的客户端添加路由, 10.10.50.4是vpn服务的连接内网的ip地址(如果双网卡)
ip route add 10.250.250.0/26 via 10.10.50.4
Azure平台设置
平台不做设置,只能vpn服务器ping通对端子网地址,而子网内的客户端不能ping通对端子网或对端VPN服务器
如果VPN是架在Azure平台上,必须设置:
1. vpn虚机连接对端vpn网卡上的转发功能必须开启。
2. 添加路由表
服务器1 端的路由表的设置:
地址前缀: 10.10.50.0/24 ## 对端vpn的子网
下一跳类型: 虚拟设备
下一跳地址: 10.250.250.69 ## VPN服务器的连接内网的IP地址(如果是采用双网卡)
在把路由表绑定到本端子网,这些子网需要通过此vpn连接对端子网。
服务器2 端的路由表的设置:
地址前缀: 10.250.250.0/24 ## 对端vpn的子网
下一跳类型: 虚拟设备
下一跳地址: 10.10.50.4 ## VPN服务器的连接内网的IP地址(如果是采用双网卡)
在把路由表绑定到本端子网,这些子网需要通过此vpn连接对端子网。
3. 安全组需要开通4500/udp 500/udp
aws 平台
需要关闭VPN服务器网卡默认的“源/目标检查”,默认为开启状态
需要设置平台路由表和安全组
具体没操作过,此略。
参考
https://wiki.strongswan.org/projects/strongswan/wiki/UsableExamples